/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.com.server.clasificacionAsteroide;

import co.com.jpa.controllers.ClasificacionAsteroideJpaController;
import co.com.jpa.controllers.exceptions.IllegalOrphanException;
import co.com.jpa.controllers.exceptions.NonexistentEntityException;
import co.com.jpa.controllers.exceptions.PreexistingEntityException;
import co.com.entities.ClasificacionAsteroide;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;

import co.com.cliente.clasificacionAsteroide.services.ClasificacionAsteroideS;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author dloaiza
 */
public class ClasificacionAsteroideSImpl extends RemoteServiceServlet implements ClasificacionAsteroideS {

    public void guardarClasficacionAsteroide(ClasificacionAsteroide clasificacionAsteroide) {
        ClasificacionAsteroideJpaController clasificacionAsteroiceJpaController = (ClasificacionAsteroideJpaController) getServletContext().getAttribute("clasificacionAsteroiceJpaController");
        try {
            clasificacionAsteroiceJpaController.create(clasificacionAsteroide);
        } catch (PreexistingEntityException ex) {
            Logger.getLogger(ClasificacionAsteroideSImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new RuntimeException("Señor usuario, Ocurrió un error en el sistema por favor intente más tarde.");
        } catch (Exception ex) {
            Logger.getLogger(ClasificacionAsteroideSImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new RuntimeException("Señor usuario, Ocurrió un error en el sistema por favor intente más tarde.");
        }
        
    }

    public void actualizarClasficacionAsteroide(ClasificacionAsteroide clasificacionAsteroide) {
        try {
            ClasificacionAsteroideJpaController clasificacionAsteroiceJpaController = (ClasificacionAsteroideJpaController) getServletContext().getAttribute("clasificacionAsteroiceJpaController");
            clasificacionAsteroiceJpaController.edit(clasificacionAsteroide);
        } catch (IllegalOrphanException ex) {
            Logger.getLogger(ClasificacionAsteroideSImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new RuntimeException("Señor usuario, Ocurrió un error en el sistema por favor intente más tarde.");
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(ClasificacionAsteroideSImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new RuntimeException("Señor usuario, Ocurrió un error en el sistema por favor intente más tarde.");
        } catch (Exception ex) {
            Logger.getLogger(ClasificacionAsteroideSImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new RuntimeException("Señor usuario, Ocurrió un error en el sistema por favor intente más tarde.");
        }
    }

    public void eliminarClasficacionAsteroides(List<ClasificacionAsteroide> clasificaciones) {
        ClasificacionAsteroideJpaController clasificacionAsteroiceJpaController = (ClasificacionAsteroideJpaController) getServletContext().getAttribute("clasificacionAsteroiceJpaController");
        for (ClasificacionAsteroide clasificacionAsteroide : clasificaciones) {
            try {            
                clasificacionAsteroiceJpaController.destroy(clasificacionAsteroide.getNmidClasificacion());
                
            }  catch (NonexistentEntityException ex) {
                Logger.getLogger(ClasificacionAsteroideSImpl.class.getName()).log(Level.SEVERE, null, ex);
                throw new RuntimeException("Señor usuario, Ocurrió un error en el sistema por favor intente más tarde.");
            }
        }
    }

    public List<ClasificacionAsteroide> consultarClasificacionAsteroides() {
        ClasificacionAsteroideJpaController clasificacionAsteroiceJpaController = (ClasificacionAsteroideJpaController) getServletContext().getAttribute("clasificacionAsteroiceJpaController");
        return clasificacionAsteroiceJpaController.findClasificacionAsteroideEntities();
    }

}
